package com.todo.strategy.online.application.entity.bo;

import com.todo.strategy.common.enums.PlanRelationSceneEnum;
import com.todo.strategy.common.enums.StrategyRelationTypeEnum;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author azhebuxing
 * @date 2024/4/25 17:38
 * @description
 */
@Data
public class PlanRelationBO {
    /**
     * 主键
     */
    private Long id;
    /**
     * 业务场景 平台攻略、用户攻略、旅游卡攻略等
     */
    private PlanRelationSceneEnum businessScene;
    /**
     * 业务id
     */
    private Long businessId;
    /**
     * 标题
     */
    private String title;
    /**
     * 备注
     */
    private String remark;
    /**
     * 关联类型
     */
    private StrategyRelationTypeEnum relationType;
    /**
     * 关联id
     */
    private Long relationId;
    /**
     * 当天开始时间（HH:mm:ss）
     */
    private String startTime;
    /**
     * 关联名称
     */
    private String relationName;
    /**
     * 计划第几天
     */
    private Integer planDay;
    /**
     * 旅游规划、建议
     */
    private Suggest suggest;
    /**
     * 时间花费 - 分钟
     */
    private Integer timeCost;
    /**
     * 是否出游
     */
    private Boolean isTravel;
    /**
     * 金额花费
     */
    private BigDecimal moneyCost;
    /**
     * 扩展信息
     */
    private Extra extra;

    @Data
    public static class Suggest {
        /**
         * 出行规划
         */
        private String travelPlan;
        /**
         * 出行备注
         */
        private String travelRemark;
        /**
         * 出行建议
         */
        private String travelSuggest;
        /**
         * 必备商品列表
         */
        private List<String> necessaryItems;
    }

    @Data
    public static class Extra {
        /**
         * 自定义内容信息
         */
        private CustomInfo customInfo;
    }

    @Data
    public static class CustomInfo {
        /**
         * 自定义名称
         */
        private String name;
        /**
         * 自定义类型
         */
        private String customType;
        /**
         * 详细地址
         */
        private String address;
        /**
         * 经度
         */
        private BigDecimal lon;
        /**
         * 纬度
         */
        private BigDecimal lat;
    }
}
